package com.mac.mapper;


import com.mac.pojo.Member;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;

import java.util.ArrayList;

public interface MemberMapper {


    /**
     *  根据成员的姓名返回成员相关的信息
     * @param memberName 用户姓名
     * @return 返回Member类
     */
    @Select("select * from members where member_name = #{memberName}")
    @ResultMap("memberResultMap")
    Member selectByMemberName(@Param("memberName") String memberName);

    @Select("select * from members where user_id = #{userId}")
    @ResultMap("memberResultMap")
    Member selectByUserId(@Param("userId") int userId);

    @Select("select * from members")
    @ResultMap("memberResultMap")
    ArrayList<Member> selectAllMember();

    /**
     *  给入成员Member类，进行信息的修改
     * @param member 成员类
     */
    boolean changeMemberInfo(Member member);

    boolean addMember(Member member);






    /**
     * 返回所有用户信息
     * @return 返回ArrayList<User>
     */
    @Select("select * from members")
    @ResultMap("memberResultMap")
    ArrayList<Member> selectAll();

    /**
     * 批量删除
     * @param ids
     */
    boolean deleteByIds(@Param("ids") int[] ids);



    /**
     * 分页查询
     * @param begin 从哪里开始
     * @param size 每次展示几个用户
     * @return 返回 ArrayList<User>
     */
    @Select("select * from members limit #{begin} , #{size}")
    @ResultMap("memberResultMap")
    ArrayList<Member> selectByPage(@Param("begin") int begin, @Param("size") int size);

    /**
     * 查询总记录数
     * @return
     */
    @Select("select count(*) from  members")
    Integer selectTotalCount();

    /**
     * 分页条件查询
     * @param begin
     * @param size
     * @return
     */
    @ResultMap("memberResultMap")
    ArrayList<Member> selectByPageAndCondition(@Param("begin") int begin,@Param("size") int size,@Param("member") Member member);

    /**
     * 根据条件查询总记录数
     * @return 总记录数
     */
    Integer selectTotalCountByCondition(@Param("member") Member member);
}
